import router from "@/router";
import { useBreadCrumb } from "@/store/breadCrumb";
import { usePermission } from "@/store/permission";
import NProgress from "nprogress";
//前置守卫(钩子)
router.beforeEach(async (to, from) => {
  //打开进度条
  NProgress.start();
  let permissStore = usePermission();
  // console.log(to).
  // console.log(from)
  //判断本地的sessionStorage中是否有token,如果有,啥也不干
  let token = sessionStorage.getItem("myx-token");
  if (!token) {
    //如果没有
    //1.访问的不是登入页,强行跳转到登入页
    if (to.path !== "/login") {
      return {
        path: "/login",
      };
    }
  } else {
    // 如果menulist的长度是0 那么就要发起请求
    if (permissStore.menulist.length === 0) {
      //调用store中的action方法发起异步请求
      await permissStore.fetch_menulist();
      return {
        ...to,
      };
    }
  }
});

//全局后置钩子
router.afterEach((to, from) => {
  //关闭进度条
  NProgress.done();
  let breadCrumbStore = useBreadCrumb();
  breadCrumbStore.$patch((state) => {
    state.datas = to.matched;
  });
});
